<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
	<script src="../node_modules/axios/dist/axios.min.js"></script>
</head>
<body>
<button>发送请求</button>
</body>
<script type="module">
	// import axios from "./myAxios.js";
	axios.defaults.baseURL = "http://zhangpeiyue.com"
	// axios.defaults.headers.b = 200;
	// axios.defaults.headers.token = localStorage.getItem("token");
	const btn = document.querySelector("button");
	// 1- 请求拦截-》发送请求之前执行
	//    后定义的先执行。
	//    第一次执行的请求拦截获取到的是配置信息
	//    后续的请求拦截获取到的config值为上一次拦截执行函数的返回值
	//    最后一次拦截返回值才是配置信息。
	
	//    如果先执行的拦截器发生异常，那么会执行后续拦截当中的第二个回调
	// 2- 响应拦截-》 得到响应后执行
	//    先定义先执行
	//    第一次执行的拦截函数返回值是下一个拦截函数得到的值
	//    最后一次执行的拦截函数的返回值才是axios得到的结果
	
	// Promise.resolve({
	// 	url: "",
	// 	methods: "",
	// 	timeout: "",
	// 	params: "",
	// 	data: ""
	// }).then(function (config) {
	// 	console.log("请求拦截2", config);
	// 	// throw "异常"
	// 	return config;
	// }).then(function (config) {
	// 	console.log("请求拦截1", config);
	// 	return config;
	// }, function (err) {
	// 	console.log("请求拦截1-失败", err);
	// }).then(dispatchRequest)
	// 		.then(function (res) {
	// 			console.log("响应拦截1", res);
	// 			throw "异常";
	// 			return 100;
	// 		}).then(function (res) {
	// 			console.log("响应拦截2", res);
	// 			return res + 100;
	// 			},
	// 			function (err) {
	// 				console.log("响应拦截2-失败", err);
	// 			})
	
	const r1= axios.interceptors.request.use(function (config) {
		console.log("请求拦截1", config);
		return config;
	}, function (err) {
		console.log("请求拦截1-失败", err);
	})
	const r2 = axios.interceptors.request.use(function (config) {
		console.log("请求拦截2", config);
		// throw "异常"
		return config;
	})
	const s1= axios.interceptors.response.use(function (res) {
		console.log("响应拦截1", res);
		throw "异常";
		return 100;
	})
	const s2 = axios.interceptors.response.use(function (res) {
		console.log("响应拦截2", res);
		return res + 100;
	}, function (err) {
		console.log("响应拦截2-失败", err);
	})
	console.log(r1,r2,s1,s2);
	// 移除请求拦截
	axios.interceptors.request.eject(r2);
	axios.interceptors.request.eject(r1);
	// 移除响应拦截
	axios.interceptors.response.eject(s1);
	axios.interceptors.response.eject(s2);
	// 2- 响应拦截-》得到响应之后执行
	btn.onclick = async function () {
		const result = await axios.get("/scoreList");
		console.log(result);
	}
</script>
</html>